home *** CD-ROM | disk | FTP | other *** search
/ Amiga Magazin: Amiga-CD 1996 March / Amiga-CD 1996 #3.iso / demos / stormc-demo / liesmich < prev    next >
Encoding:
Text File  |  1996-01-19  |  23.6 KB  |  591 lines

  1. Willkommen zur StormC-Demoversion 1.0
  2.  
  3. Bereits zur Computer 95 im letzten November war eine Vorversion unseres
  4. neuen Compilersystems erhältlich. Die verwirklichten Konzepte und 
  5. eingeflossenen neuen Innovationen haben auch die Presse überzeugt, wie
  6. Sie in einigen Berichten in den Januar- und Februar-Ausgaben der gängigen
  7. Amiga-Zeitschriften nachlesen können.
  8.  
  9. Hier nur einige Auszüge:
  10.  
  11. Amiga Plus 1/96
  12.  
  13.    Neue Konzepte bei Entwicklung und Qualitätssicherung...
  14.    Die erste Besonderheit ist die Projektverwaltung, die zum ersten
  15.    Mal bei einem solchen Paket nicht aufgesetzt wirkt...
  16.  
  17. Amiga Magazin 1/96
  18.    
  19.    Die Projektverwaltung: Endlich einmal ein Tool, das nicht wie ein Klotz 
  20.    am Bein wirkt, sondern wirklich nützlich ist.
  21.    
  22. Amiga Special 2/96
  23.  
  24.    Ein schneller Compiler, der leistungsstarke Debugger und die komfortable
  25.    Entwicklungsumgebung sind eine interessante Mischung, wenn es sich um 
  26.    professionelle Softwareentwicklung handelt...
  27.  
  28. Mit der beiliegenden Demoversion können Sie sich selbst davon überzeugen.
  29.  
  30. Einschränkungen der Demoversion:
  31. ================================
  32.  
  33. Der beiliegende Compiler wird Ihnen zwar große Sourcen durchkompilieren 
  34. aber lediglich maximal 10 KByte große Objektcodes schreiben. Sie haben
  35. damit zumindest die Gewißheit, daß Ihre großen Projekte auch kompiliert
  36. werden können.
  37.  
  38. Der Linker linkt aus den erzeugten Objekten ein Programm mit maximal 
  39. 20 KByte Größe.
  40.  
  41. Alle Programmteile von StormC lassen sich NICHT über das CLI starten 
  42. sondern sind lediglich in der integrierten Umgebung nutzbar.
  43.  
  44.  
  45. Wichtiges zur Installation:
  46. ===========================
  47.  
  48. Die vorliegenden Dateien sind dafür vorgesehen, von CD installiert zu 
  49. werden. Wenn Sie die Dateien bereits auf Ihre Festplatte kopiert haben
  50. ist eine Installation nicht notwendig. Sie müssen dann lediglich einen 
  51. StormC-Assign in die Datei "user-startup" eintragen, damit die Demo-
  52. Sourcen und StormC-Voreinstellungen unverändert genutzt werden können.
  53.  
  54.  
  55. Änderungen und Erweiterungen gegenüber der Preview-Version:
  56. ===========================================================
  57.  
  58. Allgemeine
  59. ----------
  60.  
  61. Die komplette Umgebung ist nun lokalisiert. Die voreingestellte 
  62. Sprache ist Englisch. Bei der Installation wird automatisch der
  63. deutschsprachige Catalog kopiert und auch genutzt, wenn Sie 
  64. Workbenck-Lokalisierung deutschsprachig eingestellt haben.
  65.  
  66. Möchten Sie trotz deutschsprachiger Workbench, mit StormC englisch-
  67. sprachig arbeiten, genügt es die Locale-Datei im Verzeichnis
  68. "StormC:StormSYS/CATALOGE/Deutsch/StormCPP.catalog" umzubenennen.
  69.  
  70. Programmstart:
  71. --------------
  72.  
  73. Entgegen der Beschreibung im Handbuch auf der Seite 12 wird das Start-
  74. bild nicht angezeigt, wenn für Ihren Workbench-Screen weniger als 
  75. 64 Farben eingestellt sind. In diesem Fall erscheint ein kleines Fenster,
  76. das Sie darauf hinweist, daß das System noch geladen wird.
  77.  
  78. Nach dem Laden erscheint ein weiteres Fenster, das Sie darüber informiert, 
  79. welche Version Sie benutzen.
  80.  
  81. Projektverwaltung (StromShell):
  82. -------------------------------
  83.  
  84. Bei "Datei(en) hinzufügen" ist eine mehrfache Selektion in der Dateiauswahl
  85. möglich.
  86.  
  87. In die Projektfenster können Workbench-Piktogramme (Appwindow) abgelegt 
  88. werden.
  89.  
  90. Ist ein Sektionstitel markiert, wenn der Menüpunkt "Löschen" angewählt wird,
  91. erfolgt die Rückfrage, ob der Inhalt der ganzen Sektion gelöscht werden soll.
  92. Beantworten Sie die Rückfrage mit "JA", wird die komplette Sektion entfernt.
  93. Die jeweiligen Dateien bleiben selbstverständlich unberührt.
  94.  
  95. Wird das Debug-Piktogramm oder der Menüpunkt "Debug..." angewählt, obwohl die
  96. Option zum Erzeugen von Debugger-Dateien im Projekt nicht angewählt sind, 
  97. erfolgt eine Rückfrage, ob große oder kleine Debug-Dateien angelegt werden 
  98. sollen. Die Projekt-Einstellungen bleiben allerdings unbeeinflußt.
  99.  
  100. Bei Klick auf die Knöpfe "Start..." und "Debug..." aus dem Fehlerfenster, 
  101. wird das Fehlerfenster zuerst geschlossen und dann die entsprechende Programm-
  102. funktion ausgeführt.
  103.  
  104. Beim "Make" bereits übersetzter Projekte wird jetzt zurückgefragt, ob nur 
  105. gelinkt oder das ganze Projekt neu kompiliert werden soll.
  106.  
  107. Der neue Menüpunkt "Bibliothek(en) hinzufügen..." entspricht dem Menüpunkt
  108. "Datei(en) hinzufügen...", setzt aber den Bibliothekssuchpfad des Projekts
  109. als Verzeichnis im ASL-Filerequester und das Pattern "#?.lib". Dadurch
  110. lassen sich deutlich schneller Bibliotheken zum Projekt hinzunehmen.
  111. Einziges Problem: Mehrfachselektionen werden immer alphabetisch sortiert 
  112. vom ASL-Requester zurückgegeben, die relevante Reihenfolge von 
  113. Bibliotheken kann man also nur erhalten, wenn man jeweils eine Bibliothek 
  114. nach der anderen zum Projekt hinzufügt.
  115.  
  116. Werden Dateien hinzugefügt, die noch nicht existieren, so wird auf Wunsch
  117. die Datei "leer" erzeugt. Als Icon wird jeweils versucht das Icon
  118. "ENV:STORMCPP/def_text.suffix" zu übernehmen, wobei für ".suffix" das Suffix
  119. des Dateinamens eingesetzt wird (z.B. .c oder .h). Dadurch lassen sich
  120. für verschiedene Textarten verschiedene Piktogramme und Texteinstellungen
  121. verwenden.
  122.  
  123. Die Einstellungen können nun auch von der StormShell gesichert und geladen
  124. werden.
  125.  
  126. Für den Linker wurden zwei neue Seiten in den Projekteinsteller eingefügt.
  127. Eine weitere erhielt der Optimizer des Compilers.
  128.  
  129. Beim Programmstart kann so ziemlich jeder Parameter der Shell-Umgebung
  130. eingestellt werden.
  131.  
  132. Die Codegröße des Executables wird nun nach jedem Compilerlauf neu angezeigt.
  133. Die Codegröße von Bibliotheken wird nun auch angezeigt, wenn die Bibliothek
  134. aus dem Suchpfad der Bibliotheken stammt.
  135.  
  136. Die Einstellung für 32-bit-korrekte-Multiplikation ist entfallen. Der Compiler 
  137. entscheidet selbständig wann welche Multiplikation benötigt wird.
  138.  
  139. Bei den Einstellern zum C/C+-Compiler ist die Möglichkeit hinzugekommen,
  140. das kleine oder große Code-Modell zu wählen. Der Compiler und der Linker 
  141. generieren dann kurze Sprünge (bsr). 
  142.  
  143. Hinweis: Zur aktuellen Demoversion werden allerdings keine Bibliotheken
  144. geliefert, die ein kleines Code-Modell unterstützen. Bei eingeschalteter 
  145. Option werden Ihre Programm demnach nicht lauffähig sein.
  146.  
  147. Bei "Make" und "Compile" werden nun alle Quelltexte automatisch gesichert.
  148.  
  149. Die Funktionen der Iconleiste sind nun mit den Funktionstasten F1 bis F6 und
  150. F7 bis F10 erreichbar.
  151.  
  152. Das About-Fenster und das Einstellungsfenster kann auch mit ESC geschlossen
  153. werden. Weitere Shortcuts für About sind "o" und <Return>. Der Use- und der
  154. Cancel-Knopf des Einstellungsfensters sind auch über ihre Shortcuts bedienbar.
  155.  
  156. Das Fehlerfenster ist nun tastatursteuerbar: Die Shortcuts für "Run", "Debug"
  157. und "Cancel" sind implementiert. Wenn gerade ein "Make" läuft, kann man es 
  158. auch mit <ESC> abbrechen, danach, bzw. wenn kein "Make" läuft, wird das 
  159. Fenster durch <ESC> geschlossen. Mit "w" kann man die Warnungen an- und 
  160. ausschalten.
  161. Per Cursor läuft man durch die Fehlerliste, per <Alt>-Cursor erreicht man
  162. die erste oder letzte Fehlermeldung. <Return> zeigt die Fehlermeldung im
  163. Editor an. 
  164.  
  165. Das Projektfenster ist komplett tastatursteuerbar. Alle 4 Cursortasten
  166. bewegen den Cursor und den Inhalt entsprechend, <Alt> <hoch>/<runter> ermöglicht
  167. den Sprung an den Anfang/Ende der Einträge, <Shift> <rechts>/<links> an den
  168. rechten oder linken Rand. <Return> führt die Aktion entsprechend eines 
  169. Doppelklicks aus, <Alt> <Return> die jeweilige Alternative (bisher nur beim
  170. Executable belegt). Backspace bzw. Delete löschen den Eintrag des Cursor
  171. aus dem Projekt und setzen den Cursor auf den nachfolgenden Eintrag.
  172.  
  173. Debugger (StormRUN):
  174. --------------------
  175.  
  176. Das im Handbuch beschriebene Debugger-Demo ist leider nur ab 
  177. Betriebssystem V39 lauffähig. Wenn Sie V37/38 installiert haben, sollten
  178. Sie mit dem Gadtools-Demo probieren.
  179.  
  180. Der Menüeintrag "Programm sichern als..." (Seite 42) ist in der 
  181. aktuellen Version nicht enthalten, da eine Änderung am Linker eine 
  182. entsprechende Funktionalität verhindert hat.
  183.  
  184. Variablenwerte einfacher Zahl-Typen (char bis long) können in allen
  185. Variablen- und Inspektionsfenstern geändert werden.
  186.  
  187. Die Wertausgabe ist deutlich schneller, da nur noch die Werte 
  188. konvertiert werden, die sich geändert haben.
  189.  
  190. Die möglichen Breakpoints werden jetzt gefiltert, so daß pro Quelltext-
  191. zeile nur noch max. ein Breakpoint steht, d.h. jeder Schritt führt auf 
  192. eine nächste Zeile.
  193.  
  194. In einem Fall des Breakpoint-Löschens wurde der Cache nicht gelöscht, was
  195. Probleme auf 68040-Rechner zur Folge hatte.
  196.  
  197. Ein Hexeditor ist eingebaut. Es kann zwischen Byte-, Word- und 
  198. Longanzeige hin- und hergeschaltet werden. Die Eingabe von Adressen
  199. (sowohl im Gadget wie auch direkt im Text), Hexdaten und ASCII Daten 
  200. ist möglich. Wie im restlichen Debugger wird nur dort etwas angezeigt, bzw
  201. geändert werden, wo gültiges RAM vorhanden ist. Das verhindert
  202. Enforcerhits, aber verbietet auch den Zugriff auf I/O-Bausteine.
  203.  
  204. Mit der TAB-Taste kann der Cursor von der Adresspalte auf die Hex- und 
  205. ASCII-Daten-Spalte und wieder zurück gesetzt werden. Wird in der 
  206. Adresspalte die dort angegebene Adresse überschrieben, springt der 
  207. Hexeditor automatisch zu der Adresse.
  208.  
  209. Bei "Save Settings" ("Einstellungen Speichern") werden die Fensterposition 
  210. und -größe des Hexeditors auch gespeichert. 
  211.  
  212. Das "Casting" funktioniert. Dazu wurde das Cycle-Gadget in den Variablen-
  213. fenstern gegen ein Stringgadget ausgetauscht (in einer Objektdatei 
  214. können schnell mal > 100 Typen auftauchen - mit einem Cyclegadget ist das 
  215. nicht handhabbar). Bislang muß in dieses Stringgadget der Typ exakt so eingetippt werden, wie
  216. er ausgegeben würde. 
  217.  
  218. Wenn eine Adresse illegal ist, wird jetzt die betroffene Adresse ausgegeben
  219. (statt "--").
  220.  
  221. Die Typ-Ausgabe kann bekanntlich in zwei Modi erfolgen: ANSI-C oder 
  222. AMIGA-C (mit ULONG, BYTE etc). Diese Unterscheidung kann der Compiler 
  223. leider nicht in den Debuginfos ablegen. Derzeit wird die AMIGA-C- 
  224. Schreibweise verwendet (kompakter).
  225.  
  226. Der Start des Programms ist jetzt systemkonformer und -kompatibler. Auch
  227. Aufrufe von Execute() oder SystemTagList() funktionieren jetzt und,
  228. wenn als Ausgabe die Console gewählt wird, kommen Ausgaben der
  229. Befehle auch auf die Console. Das Programm erscheint jetzt auch in der Liste 
  230. der CLIs, einen Kommandonamen in den Projekteinstellungen anzugeben ist also 
  231. sinnvoll.
  232.  
  233. Das Resource-Tracking ist nun implementiert. Am Ende des Programms oder nach 
  234. einem Kill werden bisher Screens, Windows, Memory, Libraries, Locks und 
  235. Files angezeigt, die nicht geschlossen oder freigegeben wurden. Ein 
  236. Doppelklick in die Liste führt an die Stelle des Funktionsaufruf. Das 
  237. neue Menü "Debug" enthält einen Menüpunkt "Flush Resources" 
  238. ("Ressourcen freigeben") zur Freigabe dieser Ressourcen. 
  239.  
  240. In manchen Programmen werden sehr viele Ressourcen alloziert, insbesondere
  241. natürlich Speicher. Solche Ressourcen, die also keinen direkten 
  242. Funktionsaufruf im Programm besitzen werden nicht angezeigt, aber dennoch
  243. freigegeben. 
  244. Ein schönes Beispiel hierfür kann mit der ASL-Library verdeutlicht werden.
  245. Wenn Sie ein Programm "killen", währen ein ASL-Requester offen ist, wird 
  246. das ASL-Fenster geschlossen, obwohl der OpenWindow-Aufruf nicht aus Ihrem
  247. Programm sondern aus der ASL-Library gemacht wurde.
  248.  
  249. Das Ressource-Tracking kann nur den unmittelbare "Caller" ermitteln. 
  250. D.h. die Funktion, die den jsr d(a6) enthält. Schon eine Stub-Funktion 
  251. für Library-Aufrufe verhindert deshalb die korrekte Anzeige des Aufrufs. 
  252. Deshalb ist es angeraten Stub-Funktionen zu vermeiden und "pragma amicall"- 
  253. und "tagcall"-Aufrufe zu verwenden.
  254.  
  255.  
  256. Editor:
  257. =======
  258.  
  259. Help-Funktion
  260. -------------
  261.  
  262. Mit drücken der Help Taste kann man das Wort unter dem Cursor an die
  263. HotHelp-Library (Version 3) übergeben. HotHelp wird dann veranlaßt,
  264. das Schlüsselwort zu suchen und den Hilfetext anzuzeigen!
  265.  
  266.  
  267. Lexikon-Dateien und manuelle Farbänderungen / Aufbau der Lexikon-Dateien
  268. ------------------------------------------------------------------------
  269. Lexikon (0001)
  270. Amiga Typen
  271. 0x00ff0000 0xffffffff 2 0 0
  272. 0
  273. VOID
  274. LONG...
  275.  
  276. Zeile 1: Diese Zeile identifiziert die Datei als Lexikon und trägt 
  277.          die Versionsnummer der Lexikon-Datei.
  278.  
  279. Zeile 2: Kommentarzeile
  280.  
  281. Zeile 3: RGB-Farbe-Vordergrund RGB-Farbe-Hintergrund (ab V39)
  282.          Vordergrund-Stiftnummer Hintergrund-Stiftnummer (für V37 und V38 erforderlich)
  283.          Stilnummer
  284.  
  285. Zeile 4: Groß-/Kleinschreibung beachten ein/aus
  286.  
  287. Zeile 5-...: Inhalte
  288.  
  289. Ab Betriebssystem-V39 können RGB Farben für die Lexika eingesetzt werden. 
  290. Die ersten beiden Zahlen geben in 24 Bit die RGB Farbe für 
  291. Schrift- und Hintergrundfarbe an. Dazu können auch Hexadezimalzahlen 
  292. mit "0x" am Anfang benutzt werden. 
  293.  
  294. Unter Kickstart V37/V38 werden feste Stiftnummern für die Farbangaben verwendet.
  295. Sie sollten das Compiler-System auf einem Screen mit mindestens 8 Farben 
  296. betreiben, da die Farbunterschiede andernfalls zu gering sind.
  297.  
  298.  
  299. Für den Editor wurden zwei neue Menüpunkte eingeführt: 
  300. 1. Einstellungen für den Editor allgemein...
  301. 2. ...und für jeden Text im besonderen.
  302.  
  303. Folgende Editoreinstellungen werden, wie im Fenster zu sehen, bereits
  304. unterstützt: Autosave, Backups, Strip EOL Blanks und Textfontwahl.
  305.  
  306. Autosave kennt zwei Algorithmen: 
  307. Entweder wird alle "n" Minuten ein normales Save durchgeführt, oder 
  308. es wird der Text in eine Extradatei gesichert. Der Name dieser 
  309. Extradatei wird automatisch durch dem Namen des Dokuments mit einem
  310. angehängten ";0" erzeugt. 
  311.  
  312. Das Sichern in diese Extradatei verändert natürlich nicht den 
  313. Textnamen und setzt auch nicht das Modify-Flag "M" zurück.
  314.  
  315. Zusätzlich kann man beim automatischen Sichern nachfragen lassen, ob 
  316. gesichert werden soll. 
  317.  
  318. Hat der Text keinen Namen, wird der Benutzer aufgefordert, den Text zu 
  319. sichern, ein Autosave wird dann nicht mehr durchgeführt. Beim Laden eines 
  320. Textes wird überprüft, ob eine Autosave-Datei jüngeren Datums existiert, in
  321. diesem Fall bekommt der Benutzer die Wahl welche Datei er laden will, als
  322. Textname wird in beiden Fällen der Originaldateiname gewählt.
  323.  
  324. Man kann bis zu 9 Backup-Dateien anlegen. Bei jedem Sichern des Textes (auch
  325. bei Autosave auf die Originaldatei) werden die Backup-dateinamen hochgezählt
  326. (die älteste Datei geht dabei eventuell verloren). Die Namen der Backup-
  327. Dateien
  328. ergeben sich aus dem Namen der Originaldatei mit angehängtem ";N", wobei
  329. "N" eine Ziffer zwischen 1 und 9 ist. Die älteste Datei ist die Datei mit
  330. der höchsten Nummer, die jüngste mit der Nummer 1.
  331.  
  332. Beim Sichern kann man alle "white spaces", d.h. insb. Spaces und Tabs am
  333. Ende der Textzeilen entfernen lassen. 
  334.  
  335. Als Zeichensatz kann jeder nicht-proportionale Zeichensatz angegeben werden.
  336.  
  337. Achtung: Momentan wird noch keine Fehlermeldung ausgegeben, wenn ein
  338. ungültiger (d.h. nicht existierender oder proportionaler) Zeichensatz
  339. angegeben wird. Es ist empfehlenswert wirklich Zeichensätze auszuwählen,
  340. deren Zeichen alle gleich breit sind. Dies gilt z.B. nicht für den Courier-
  341. Zeichensatz, manche Zeichen sind breiter als die im Font angegebene Breite.
  342. Dadurch kann es zu leichten Darstellungsfehlern am Rand des Texts kommen.
  343.  
  344. Die Tabulatorweite kann eingestellt werden und wird mit dem Tooltype 
  345. TABWIDTH gespeichert.
  346.  
  347. Automatische Einrückungen können durch "{" und "}" ausgelöst werden. 
  348. Bislang wird nur eingerückt (d.h. nur auf das Zeichen "{" reagiert). 
  349. Man kann wählen, ob Spaces oder Tabs eingefügt werden, und wieviel 
  350. jeweils.
  351.  
  352. Dabei werden 2 Methoden und ihre Kombinationen unterstützt:
  353.  
  354. 1. Vor der Klammer eingerückt bedeutet, daß beim Eingeben der Klammer 
  355.    diese eingerückt wird, wenn vor der Klammer nur Spaces oder Tabs in 
  356.    der Zeile stehen. Nach der Klammer wird nach dem nächsten Zeilenum-
  357.    bruch eingerückt, wenn die Klammer das letzte Zeichen der vorherigen 
  358.    Zeile ist.
  359.  
  360. Man kann auswählen, welche Lexika eingefärbt werden und die Syntaxein-
  361. färbungen für C/C++ Kommentare, Strings, Char-Konstanten und Zahl-Konstanten. 
  362.  
  363. Die Einfärbung von C-Kommentaren (/* Test */) funktioniert mit
  364. Einschränkungen: 
  365.  
  366.    geschachtelte Kommentare sind nicht möglich (werdem allerdings vom 
  367.    Compiler auch nicht unterstützt, #if 0 ... #endif macht das auch 
  368.    besser).
  369.  
  370.    Die gesamte Einfärberei hat einige Einschränkungen, die jetzt erst 
  371.    mit den C-Kommentaren wirklich zum Vorschein kommen: Verschachtelte 
  372.    Einfärbungen, z.B. C++-Kommentare, die in einem C-Kommentar stehen, 
  373.    können die Einfärbung durcheinander bringen. Werden die einzelnen 
  374.    Einfärbungen ausgeschaltet, so wird nur die Farbe ausgeschaltet, 
  375.    die Farbmarkierungen werden dennoch gesetzt.
  376.  
  377.    Also werden z.B. in einem C-Kommentar stehende Strings oder Lexika-
  378.    wörter nicht eingefärbt, egal ob die Einfärbung von C-Kommentaren an 
  379.    oder aus ist. Genauso bringt das Ausschalten der Einfärbungen zur Zeit
  380.    keinen Geschwindigkeitszuwachs.
  381.  
  382. Die Editoreinstellungen werden unter dem Namen "StormSettings.ED" 
  383. gespeichert. In dieser ASCII Datei stehen in den letzten Zeilen die 
  384. Farben und Register dieser Syntaxeinfärbungen entsprechend der 
  385. Reihenfolge im Texteinstellungsfenster und der Syntax, wie sie auch 
  386. in den Lexikadateien verwendet wird.
  387.  
  388. Die Gadgets im Editorfenster sind auch über Tastatur steuerbar. Der
  389. Shortcut ist natürlich von der Lokalisierung abhängig, sollte aber immer
  390. den Qualifier "ctrl" enthalten, um Konflikte mit anderen Shortcuts zu 
  391. vermeiden. Der Qualifier "ctrl" wird auch extra behandelt um Konflikte 
  392. mit Texteingaben zu vermeiden (was insbesondere CTRL-I und CTRL-M 
  393. betrifft, die jetzt nicht mehr äquivalent zu TAB und RETURN sind).
  394.  
  395. Zwischen der Modified-Anzeige und der Cursorspalten-Anzeige befindet sich
  396. jetzt eine Hilfezeile für alle Gadgets.
  397.  
  398. Um wirklich von einer 100%igen Tastaursteuerbarkeit zu reden fehlt noch 
  399. die Möglichkeit, zwischen den Textfenstern zu springen (bzw. auch die
  400. Projektfenster aktivieren zu können).
  401.  
  402. Das Find&Replace-Fenster ist nun auch vollständig tastatursteuerbar. Beim
  403. Öffnen des Fensters ist immer das Find-Stringgadget aktiv. Mit <Return> oder
  404. <Tab> wird der String gesucht und das Replace-Gadget aktiviert. 
  405. Dort wird mit <Return> oder <Tab> wieder das Findgadget aktiviert. Aus diesen 
  406. Stringgadgets heraus kann man alle anderen Gadgets dennoch durch die 
  407. Shortcuts bedienen, wahlweise mit der rechten oder auch linken Amiga-Taste 
  408. (die linke Amiga-Taste wird erlaubt um Konflikte mit Shortcuts von 
  409. Programmen wie NewEdit zu vermeiden, die einen Großteil aller Shortcuts 
  410. für sich belegen). Die Shortcuts der Cycle- und Checkboxgadgets 
  411. reaktivieren das Stringgadget wieder, die Shortcuts der Buttons aktivieren
  412. das Texteditorfenster. Will man also einen Text suchen und danach in das 
  413. Textfenster zurückkehren, so sollte man die Suche mit dem Shortcut von 
  414. "Find" (rcommand f) auslösen. <ESC> schließt das Find&Replace-Fenster und 
  415. aktiviert das Textfenster.
  416.  
  417. Die Funktionen aus der StormShell-Toolbar können auch aus dem Editor mit 
  418. den Funktionstasten aufgerufen werden.
  419.  
  420. Eine einfache Print-Funktion ist eingebaut: der ganze Text kann ausgedruckt
  421. werden, dabei wird ein Progress-Fenster angezeigt, in dem der Druck auch
  422. abgebrochen werden kann. 
  423.  
  424. Tastaturbelegung:
  425. -----------------
  426.  
  427. Shift-Cursor Up/Down
  428.     Bewegt den Cursor auf die erste/letzte Zeile, die im Fenster angezeigt
  429.     ist.
  430.     
  431. Shift-Cursor Left/Right
  432.     Bewegt den Cursor auf die erste/letzte Spalte in der aktuellen Zeile.
  433.     
  434. Alt-Cursor Up/Down
  435.     Springt an den Anfang/ans Ende des Textes.
  436.  
  437. Alt-Cursor Left/Right
  438.     Bewegt den Cursor auf das nächste Wort vor oder auf das letzte hinter
  439.     dem Cursor.
  440.  
  441. Shift-Delete oder Shift-Backspace
  442.     Löscht die Zeile, auf der der Cursor steht. Die Zeile wird in die Zwischen-
  443.     ablage gespeichert.
  444.  
  445. Alt-Delete
  446.     Löscht die Zeile ab der Cursor-Position bis zum Ende der Zeile.
  447.  
  448. Alt-Backspace
  449.     Löscht den Text zwischen der ersten Spalte bis zur Cursorposition.
  450.  
  451. Help
  452.     Schickt das Wort unter dem Cursor an die Hothelp-Library V3.0 (14. Feb 94).
  453.  
  454.  
  455. Compiler:
  456. ---------
  457.  
  458. Im Folgenden werden die Compileränderungen seit der Veröffentlichung 
  459. der Preview-Version aufgelistet.
  460.  
  461. Im ASM-Source wurde bei DS.B o.ä. die allokierte Speichergröße
  462. nur als 16-Bit-Zahl ausgegeben.
  463.  
  464. Ab 68020 wird der Befehl EXTB.L unterstützt.
  465.  
  466. Durch Probleme bei Fließkomma-Konstanten mit angehängtem "f" 
  467. (z.B. "0.5f") kam es gelegentlich zur Ausgabe von unsinnigen Werten.
  468.  
  469. Konstrukt "#if defined (xxx)" (die Variante mit Klammern hinter dem
  470. define) führte zu einer Compiler-Panik.
  471.  
  472. Konvertierung von "unsigned short"/"unsigned byte" auf einen längeren
  473. Typ geschah mittels AND und falscher Bitmaske (genau invers).
  474.  
  475. Konvertierung von "unsigned byte" auf einen vorzeichenbehafteten
  476. Ganzzahltypen geschah fälschlich mittels EXT.
  477.  
  478. Aufruf virtueller Funktionen bei Mehrfachvererbung: der
  479. "this"-Pointer der aufgerufenen Funktion wurde in der Variablen
  480. korrigiert, in der er gerade steht - auch wenn es sich dabei um
  481. eine noch benötigte Variable handelt.
  482.  
  483. "Rundungsfehler" bei Anordnung lokaler Variablen auf dem Stack
  484. führte u.U. zu Variablen an ungeraden Adressen und Stack Frames
  485. ungerader Größe.
  486.  
  487. "Geschmissene" Exceptions konnten im optimierten Modus meist nicht
  488. mehr aufgefangen werden.
  489.  
  490. Variable "sym_handlers" (wichtig fürs Exception Handling!) wird
  491. jetzt im Small-Data-Model auch A4-relativ adressiert (endlich
  492. eine sinnvolle Verbindung von Small Data Model und OO-Programmierung).
  493.  
  494. Wurde in einem Destruktor einer Klasse, die einen Member oder
  495. eine Basisklasse mit Destruktor besitzt, eine Inline-Funktion
  496. aufgerufen, so wurde vom Ende der Inline-Funktion direkt an das
  497. Ende des Destruktors (zur Destruierung von Membern und Basen)
  498. gesprungen.
  499.  
  500. Beim Abtesten einzelner Bits in Bitfeldern wurde auf das falsche
  501. Bit zugegriffen, was sich auf Umwegen auch beim Konstruieren und
  502. Destruieren virtueller Basisklassen bemerkbar machte.
  503.  
  504. Als Basiszeiger für die double-Mathe-Lib wird jetzt
  505. "_MathIeeDoubBasBase" statt "lib_MathBase" verwendet.
  506.  
  507. Die Bibliotheksroutinen "lib_int2double" und "lib_double2int" wurden
  508. durch direkte Aufrufe von IEEEDPFix/IEEEDPFlt ersetzt.
  509.  
  510. Die Repräsentierung von "long long" wurde compilerseitig auf
  511. eine einleuchtendere Form umgestellt (normales Big Endian).
  512. Außerdem werden für entsprechende Operationen die
  513. Bibliotheksfunktionen Add64, Sub64, Neg64, Cmp64, UMult64,
  514. UDiv64, UMod64, SMult64, SDiv64, SMod64 aufgerufen.
  515.  
  516. Leere "_INIT_"-Funktionen werden nicht mehr erzeugt.
  517.  
  518. Bei numerischer Auswertung der Ausdrücke "i != 0" und "!i" wurde
  519. das Ergebnis fälschlich mit AND.W statt AND.L ausmaskiert.
  520.  
  521. Ein recht globaler Fehler in der Speicherverwaltung verursachte
  522. Adreßfehler auf 68000ern (und ungünstig align'te Daten auf
  523. allen anderen Amigas).
  524.  
  525. Innerhalb von Konstruktoren wurden generell keine virtuellen
  526. Funktionen aufgerufen, selbst wenn diese eindeutig nicht über
  527. "this" bezogen waren.
  528.  
  529. Fehler beim Zugriff auf Strukturen von mehr als 32 KByte Größe:
  530. Adreßoffsets >32767 wurden falsch codiert und führten zu einem
  531. Assemblerfehler.
  532.  
  533.  
  534. Fehler im Zusammenhang mit MagicMenu und möglicherweise mit SUN-Mouse-Utilities
  535. -------------------------------------------------------------------------------
  536.  
  537. Bei installiertem MagicMenu friert der Bildschirm ein, wenn bei aktivem 
  538. Piktogramm-Fenster die rechte Maustaste gedrückt wird und sich der
  539. Mauszeiger über einem Piktogramm befindet. Durch eine Inkonformität von MagicMenu 
  540. werden Mousemove-Nachrichten geschickt, obwohl die rechte Maustaste gedrückt
  541. ist. In diesem Fall versucht dann die StormShell die Hilfezeile im Fenster
  542. auszugeben und erzeugt dadurch das Einfrieren des Bildschirms. Im Falle von 
  543. MagicMenu dauert es ca. 10 Sekunden und man kann normal weiterarbeiten.
  544.  
  545. Zu ähnlichen Problemen kann es auch mit verschiedenen SUN-Mouse Utilities 
  546. kommen.
  547.  
  548.  
  549.  
  550. Bei Fragen wenden Sie sich bitte an:
  551.  
  552.       HAAGE & PARTNER Computer GmbH
  553.       Mainzer Straße 10A
  554.       61191 Rosbach v.d.H.
  555.  
  556.       Tel: 06007/930050
  557.       Fax: 06007/7543
  558.  
  559.       Compuserve: 100654,3133
  560.       Internet: 100654.3133@compuserve.com
  561.       Web Page: http://home.pages.de/~haage
  562.  
  563.  
  564.  
  565. Zum Schluß möchten wir uns bei unseren aktiven Betatestern bedanken.
  566.  
  567. Vielen Dank an:
  568.  
  569.     Dietmar Augustin
  570.     Olaf Barthel
  571.     Michael Bergmann
  572.     Holger Burkarth
  573.     Thomas Bayen
  574.     Bernhard Büchter
  575.     Michael Donner
  576.     Torsten Ebeling
  577.     David Göhler
  578.     Clemens Marschner
  579.     Alexander Pratsch
  580.     Andreas Pfohl
  581.     Constantin Rack
  582.     Michael Rock
  583.     Jürgen Schildmann
  584.     Carsten Schlote
  585.     Stephan Schüerholz
  586.     Thomas Wilhelmi
  587.  
  588.  
  589. (c) 1995/1996 HAAGE & PARTNER Computer GmbH
  590.  
  591.